home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d12
/
asm_msc1.arc
/
EX511.ASM
< prev
next >
Wrap
Assembly Source File
|
1988-11-20
|
1KB
|
44 lines
TITLE Convert Hex to ASCII, BCD and EBCDIC (EX511.ASM)
PAGE ,132
DATA SEGMENT PARA 'DATA'
ASCII DB '0123456789ABCDEF'
BCD DB 0,1,2,3,4,5,6,7,8,9,10H,11H,12H,13H,14H,15H
EBCDIC DB 0F0H,0F1H,0F2H,0F3H,0F4H,0F5H,0F6H,0F7H
DB 0F8H,0F9H,0C1H,0C2H,0C3H,0C4H,0C5H,0C6H
DATA ENDS
OUR_CODE SEGMENT PARA 'CODE'
PUBLIC CONV_HEX
CONV_HEX PROC FAR
ASSUME CS:OUR_CODE,DS:DATA
PUSH DS ;Save the caller's registers
PUSH BX
PUSH DX
;
; Initialize the data segment address.
;
MOV BX,DATA
MOV DS,BX
;
; This is the look-up procedure.
;
MOV DL,AL ;Save the input value in DL
LEA BX,ASCII ;Look up the ASCII value
XLAT ASCII
MOV CH,AL ; and load it into CH
MOV AL,DL
LEA BX,BCD ;Look up the BCD value
XLAT BCD
MOV CL,AL ; and load it into CL
MOV AL,DL
LEA BX,EBCDIC ;Look up the EBCDIC value
XLAT EBCDIC
MOV AH,AL ; and load it into AH
MOV AL,DL ;Restore registers
POP DX
POP BX
POP DS
RET ; and exit
CONV_HEX ENDP
OUR_CODE ENDS
END CONV_HEX